package cc.rengu.igas.channel.upac.facade;

import cc.rengu.igas.channel.upac.facade.request.*;
import cc.rengu.igas.channel.upac.facade.response.*;
import cc.rengu.igas.channel.upac.facade.result.Result;

/**
 * 银联全渠道贷记（代付）业务API组件
 */
public interface UpacCreditService {


    /**
     * 代付交易状态查询服务
     *
     * @param creditTransStateQueryRequest 交易状态查询请求
     * @return 交易状态查询应答
     * @
     */
    Result<CreditTransStateQueryRespone> creditTransStateQuery(CreditTransStateQueryRequest creditTransStateQueryRequest);


    /**
     * 单笔代付
     *
     * @param repayRequest
     * @return 单笔代付应答
     * @
     */
    Result<RepayResponse> singleRepay(RepayRequest repayRequest);

    /**
     * 银联全渠道批量代付
     *
     * @param batRepayRequest
     * @return
     * @
     */
    Result<BatRepayResponse> batRepay(BatRepayRequest batRepayRequest);

    /**
     * 银联全渠道批量代付交易状态查询
     *
     * @param batRepayStateQueryRequest
     * @return 批量代付交易状态查询应答
     * @
     */
    Result<BatRepayStateQueryResponse> batRepayStateQuery(BatRepayStateQueryRequest batRepayStateQueryRequest);

    /**
     * 代付入账交易状态查询
     *
     * @param accountingStatusQueryRequest
     * @return 入账交易状态查询应答
     * @
     */
    Result<AccountingStatusQueryResponse> accountingStatusQuery(AccountingStatusQueryRequest accountingStatusQueryRequest);

}
